/**
  ******************************************************************************
  * @file       app_rd03.c
  * @author     embedfire
  * @version     V1.0
  * @date        2024
  * @brief   多串口通讯之人体雷达实验应用层函数接口
  ******************************************************************************
  * @attention
  *
  * 实验平台  ：野火 STM32F103C8T6-STM32开发板 
  * 论坛      ：http://www.firebbs.cn
  * 官网      ：https://embedfire.com/
  * 淘宝      ：https://yehuosm.tmall.com/
  *
  ******************************************************************************
  */
  
#include "App/rd03/app_rd03.h" 
#include "usart/bsp_usart.h"
#include <string.h>
#include "rd03/bsp_rd03.h"
#include "led/bsp_gpio_led_ex.h"    

/**
 * @brief  Usart任务配置复位
 * @param  rx_data_buff：接收数据buff
 * @retval 无
 */
void Usart_Task_Reset(USART_DataTypeDef* rx_data_buff)
{
    memset(rx_data_buff->data,0,rx_data_buff->len);
    rx_data_buff->flag = 0;
    rx_data_buff->len = 0;
}

/**
 * @brief  Usart任务初始化
 * @param  无
 * @retval 无
 */
void Usart_Task_Init(void)
{
    USARTX_Init();
    Usart_Task_Reset(&debug_receive_data);
    Usart_Task_Reset(&rd03_receive_data);
    
}

/**
 * @brief 回显处理函数
 * @param rx_data_buff：接收数据buff 
 * @param ch:要发送的数据
 * @note  无
 * @retval 无
 */
void Usart_Echo_Process(USART_DataTypeDef* rx_data_buff)
{
//    USARTX_SendString(DEBUG_USARTX,(uint8_t*)"\r\n<<PC->MCU>>");
    USARTX_SendString_Lenth(DEBUG_USARTX,rx_data_buff->data,rx_data_buff->len);
}

/**
 * @brief  DEBUG任务
 * @param  rx_data_buff：接收数据buff
 * @retval 无
 */
void Debug_Task(USART_DataTypeDef* rx_data_buff)
{
    if(rx_data_buff->flag == 1)//A与MCU之间的交互     
    {
//        USARTX_SendString(DEBUG_USARTX,(uint8_t*)"<<PC->MCU>>");//转发给PC
//        USARTX_SendString_Lenth(DEBUG_USARTX,rx_data_buff->data,rx_data_buff->len);
        USARTX_SendString_Lenth(RD03_USARTX,rx_data_buff->data,rx_data_buff->len);
        Usart_Task_Reset(rx_data_buff);
    }
}

/**
 * @brief  Rd03任务
 * @param  rx_data_buff：接收数据buff
 * @retval 无
 */
void Rd03_Task(USART_DataTypeDef* rx_data_buff)//B与MCU之间的交互
{
    if(rx_data_buff->flag == 1)
    {
        USARTX_SendString(DEBUG_USARTX,(uint8_t*)"<<RD03->MCU>>");//转发给PC
//        USARTX_SendString_Lenth(DEBUG_USARTX,rx_data_buff->data,rx_data_buff->len);
        //检查是什么模式的数据及处理数据，解析数据
        switch(RD03_DataHandler(Check_RD03_DataMode(rx_data_buff),rx_data_buff))
        {
            case 0:
                LED1_LED_EX_OFF;
                break;
            case 1:
                LED1_LED_EX_ON;
                break;
            default:
                break;
        }    
        Usart_Task_Reset(rx_data_buff);
    }
}

/*****************************END OF FILE***************************************/

